package com.xu.system.model.pojo.menu;

import com.xu.base.tree.ITreeNode;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 菜单详细信息
 *
 * @Author: 许乾伟
 * @Date: 2024/3/21 11:26
 */
@Data
public class MenuTreeVo implements Serializable, ITreeNode {
    /**
     * 菜单id
     */
    private Long menuId;
    /**
     * 菜单父id
     */
    private Long parentId;
    /**
     * 菜单类型 (M:目录,C:菜单,F:按钮)
     */
    private String menuType;
    /**
     * 菜单名称
     */
    private String menuName;
    /**
     * 菜单标识
     */
    private String menuCode;
    /**
     * 菜单路径
     */
    private String path;
    /**
     * 是否为外链(true:是,false:否)
     */
    private Boolean isFrame;
    /**
     * 是否显示（true:显示  false:不显示）
     */
    private Boolean isVisible;
    /**
     * 权限标识
     */
    private String perms;
    /**
     * 图标
     */
    private String icon;
    /**
     * 显示顺序(正序显示)
     */
    private Integer sort;
    /**
     * 菜单状态（true:启用  false:停用）
     */
    private Boolean status;
    /**
     * 子菜单
     */
    private List<MenuTreeVo> children;


    @Override
    public Long getNodeId() {
        return this.menuId;
    }

    @Override
    public Long getParentNodeId() {
        return this.parentId;
    }

    @Override
    public void setChildren(List children) {
        this.children = children;
    }

    @Override
    public boolean isRoot() {
        return this.parentId.equals(0L);
    }
}
